package com.lagou.hadoop.sort;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

/**
 * 对文件中的数据进行升序排列，并打印排名
 * 输入参数 k-> 每行偏移量，v--> 每行参数 Text
 * 输出参数 k-> SortBean, v-> NullWritable
 * @Author chenkl
 * @Date 2020/8/9 17:26
 */
public class SortMapper extends Mapper<LongWritable, Text,SortBean, NullWritable> {

    // 全局变量，避免每次调用创建
    SortBean sortBean = new SortBean();

    @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        //获取每行值
        int v = Integer.parseInt(value.toString());
        // 封装成SortBean对象，可以先不指定rank值，由后面reduce 进行设置
        sortBean.setValue(v);
        // 写入返回值
        context.write(sortBean,NullWritable.get());
    }
}
